package com.zoroki.hmusic.util;

import lombok.NonNull;
import org.springframework.security.crypto.bcrypt.BCrypt;

import java.nio.charset.CoderResult;
import java.security.CodeSigner;
import java.security.CodeSource;

public class BCryptUtil {
    private static final int SALT_STRENGTH = 12;//盐值强度

    /**
     * bcrypt加密
     * @param password 用户注册输入的密码
     * @return 返回的是bcrypt加密后的密码
     */
    public static String encode(@NonNull String password){
        return BCrypt.hashpw(password, BCrypt.gensalt(SALT_STRENGTH));
    }

    /**
     * 验证用户密码是否与数据库一致
     * @param password 用户输入的密码
     * @param dataBasePassword 数据库中保存的用户密码
     * @return 返回boolean值
     */
    public static boolean checkPassword(@NonNull String password , @NonNull String dataBasePassword) {
        return BCrypt.checkpw(password, dataBasePassword);
    }
}
